package com.wsd.jing.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wsd.jing.entity.Menu;
import com.wsd.jing.request.CommonRequest;
import com.wsd.jing.vo.AuthVO;

import java.util.List;
import java.util.Map;

/**
 * All rights Reserved, Designed By www.tom.com
 *
 * @author tom
 * @version 1.0.0
 * @projectName: jing
 * @packageName: com.wsd.jing.service
 * @className: IMenuService
 * @description: 菜单服务类
 * @createDate 2022-11-20 07:41
 * @copyright 2022-11-20 07:41 www.tom.com Inc. All rights reserved.
 */
public interface IMenuService extends IService<Menu> {

    /**
     * @param menu:菜单
     * @return Boolean
     * @author tom
     * @description 新增菜单
     * @createDate 2022-11-20 07:41
     */
    Boolean insertMenu(Menu menu);

    /**
     * @param menu:菜单
     * @return Boolean
     * @author tom
     * @description 修改菜单
     * @createDate 2022-11-20 07:41
     */
    Boolean updateMenu(Menu menu);

    /**
     * @param id:id
     * @return Boolean
     * @author tom
     * @description 删除菜单
     * @createDate 2022-11-20 07:41
     */
    Boolean deleteMenu(Integer id);

    /**
     * @param ids:id
     * @return Boolean
     * @author tom
     * @description 批量删除菜单
     * @createDate 2022-11-20 07:41
     */
    Boolean deleteMenus(String ids);

    /**
     * @param id:id
     * @return Menu
     * @author tom
     * @description 查询菜单
     * @createDate 2022-11-20 07:41
     */
    Menu getMenu(Integer id);

    /**
     * @param commonRequest:排序参数
     * @param menu:菜单
     * @return List<Menu>
     * @author tom
     * @description 查询菜单列表
     * @createDate 2022-11-20 07:41
     */
    List<Menu> listMenus(CommonRequest commonRequest, Menu menu);

    /**
     * @param commonRequest:分页参数
     * @param menu:菜单
     * @return Map<String, Object>
     * @author tom
     * @description 分页查询菜单列表
     * @createDate 2022-11-20 07:41
     */
    Map<String, Object> listPageMenus(CommonRequest commonRequest, Menu menu);

    /**
     * @param :
     * @return List<AuthDTO>
     * @author tom
     * @description 查询菜单树
     * @createDate 2022/11/25 16:19
     */
    List<AuthVO> listTreeMenus();

    /**
     * @param :
     * @return List<AuthDTO>
     * @author tom
     * @description 查询权限树
     * @createDate 2022/11/25 16:19
     */
    List<AuthVO> listTreeAuths();
}
